The invention relates to a software agent for use in an interactive software application, in particular, but not exclusively, such as for a virtual-environment or for a video game.
The Internet has opened up new opportunities for interaction and collaboration. Users may interact in real time or off-line and a synchronously through electronic mail. The more intimate the interaction, the more difficult it becomes to deal with the uncertainties associated with delays caused by network latency, bandwidth limitation, etc. For instance, in a networked multimedia game where two users are engaged in hand-to-hand combat, network latency may spoil the interactivity of the game.
U.S. patent application Ser. No. 08/722,413 (PHA 23,156), incorporated herein by reference, discloses a system for processing an interactive software application that governs an interaction between two or more users in a virtual environment. The system comprises user-interface machines for actuation by respective ones of the users. The machines are interconnected via a network. In order to eliminate latency, a specific user is, under circumstances, represented at another user""s machine by a proxy agent whose response to an action of the other user is governed by a rule base stored in the other user""s machine. The proxy agent is an entity within the virtual environment that interacts with that environment according to its own agenda. In above example, the proxy agent takes over control from the user in a situation wherein the latency involves direct, close-proximity interaction between players and/or objects via the virtual environment software application.
It is an object of the invention to provide an alternative and more general approach to the problem of delays such as caused by network latency.
To this end, the invention provides a software agent for use in an interactive software application that runs on a data processing system. The agent comprises an input for receiving information about a delay in presenting data to the user, and an effector for masking the delay by selectively creating a user-perceptible effect dependent on the delay under control of the application. The effector selectively creates the effect dependent on a duration of the delay, e.g., measured network latency, and possibly dependent on further criteria such as the state of the application (e.g., the progress of a video game), the status of the user or the history of the user interacting with the application. How to measure latency in the data transmission over a network is known in the art and is discussed in some detail further below. The agent creates the effect using a cinematographic technique. That is, the image displayed to the user, the sounds supplied via the system""s loudspeaker or the tactile feedback to the user are artificially manipulated to create a special effect. The software agent thus masks the delays associated with network latency by diverting the user. Preferably, the agent is capable of generating the effect using a respective one of multiple cinematographic techniques. The agent employs a respective one of the techniques, for example, dependent on a respective one of multiple ranges of the delay measured. The cinematographic techniques may comprise, for example, a replacement of a scene by a close-up of part of the scene (zooming-in) or by a distant view on the scene (zooming-out). Another technique is to introduce one or more dummy objects or beings into the scene blocking the view or diverting the viewer. The dummy can be context-related or can be independent of the software application""s context. Thus, network latency is virtually eliminated. The dummy is made local to the user""s machine so that the network is not involved. Yet another technique is to change to an interlude or to use context switching among scenes. Preferably, the agent generates a type of effect different from the effects that the user has seen previously, thus taking into account the individual history of the application as experienced by the user. This reduces the chance that the user will become aware of the fact that he/she is being distracted. For example, the agent could select randomly or according to some other scenario from among the cinematographic effects available (zoom-in, zoom out, dummy, context switching, interlude, etc).
As is clear, the user-perceptible effect created by the diversion agent need not be limited to visual impressions. Assume, for example, that the user participates in a multiple-user video game involving a contest among individuals or teams. The agent can distract the user at the moment the delay occurs in the data delivery by, e.g., sending spoken praising messages or spoken recommendations on certain playing techniques, or by creating surprising sound effects.
Below, the software agent of the invention will be referred to as a xe2x80x9cdiversion agentxe2x80x9d. Note that the proxy agent of U.S. patent application Ser. No. 08/722,413 (PHA 23,156) mentioned above represents one user at the machine of another user, especially under conditions involving close-proximity interaction. In the current invention, however, the diversion agent is activated based on the amount of latency determined, is independent of close-proximity interaction and need not represent a user at another user""s machine. The diversion agent evokes effects based on cinematographic techniques.